The present invention relates to concealing errors in video data, and more particularly, to using motion vector data recovery for such concealment of errors.
In an MPEG-4 decoder used for real-time streaming, when an error is detected in the motion partition of a video packet, substantially all decoded information of that packet is often discarded. The region of the video frame corresponding to this corrupted packet may then be generated by error correction process. However, traditional error detection and correction systems, such as interleaving, may require a significant amount of overhead as well as significant amount of data processing when decoding coded video bit stream signals. Thus, current video decoding systems may rely on error concealment techniques for effective video streaming. In contrast to error correction, which attempts to reconstruct lost or corrupt data, error concealment aims to generate data that may be substituted for the lost or corrupt data. Discrepancies in image created by the generated data (generally at the macroblock level) are not likely to be perceived by a viewer of a video image that utilizes such error concealment.
Motion compensated temporal replacement may be an appropriate error concealment technique in video frames without much scene changes. This technique uses motion information to propagate macroblocks from the previous frame to replace the corrupted macroblocks in the current frame. Thus, this technique may provide effective error concealment as long as motion information can be obtained without much error.
One approach in obtaining the motion information is to use average or median of motion vectors from neighboring uncorrupted macroblocks. This technique is simple but sometimes yields inadequate performance when the actual motion vector of neighboring macroblocks differs. Another approach may involve use of motion estimation in the decoder. This approach may yield better visual results than averaging neighboring motion vectors but may require significantly more processing time.